
// fs文件写入
// file system的缩写

const fs = require('fs');

console.log('fs1')

// 写入文件（异步线程）
fs.writeFile('04.txt', 'hello world', (err) => {
    //console.log(err)
    if (err) {
        console.log('异步线程写入失败')
    } else {
        console.log('异步线程写入成功')
    }
})

console.log('fs2')

// 写入文件（同步线程）
let res = fs.writeFileSync('04.txt', '123');
// console.log('同步线程写入文件:', res)
if (res) {
    console.log('同步线程写入失败')
} else {
    console.log('同步线程写入成功')
}

console.log('fs3')

fs.appendFile('04.txt', '\n这是追加的文本', (err) => {
    if (err) {
        console.log('异步线程追加写入失败')
    } else {
        console.log('异步线程追加写入成功')
    }
})

let res2 = fs.appendFileSync('04.txt', '\n这是同步线程追加的文本');
if (res2) {
    console.log('同步线程追加写入失败')
} else {
    console.log('同步线程追加写入成功')
}

fs.writeFile('04.txt', '\nwriteFile实例追加', {flag: 'a'}, (err) => {
    if (err) {
        console.log('writeFile实例追加失败')
    } else {
        console.log('writeFile实例追加成功')
    }
})

// 流式写入
// 适用写入频次高、大文件的情况
const ws = fs.createWriteStream('04.stream.txt');
ws.write("第1行\n")
ws.write("第2行\n")
ws.write("第3行\n")
ws.close()
